Repository navigation
Conversation
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Approved intermediate baseline A. Strict identity remains RED only at records 390 and 392: false/true setPrefix throws a WASM memory-access RuntimeError but a native Error. The shared all-position TypeError validation fix follows in its own commit B; this baseline does not waive identity, actual Linux native coverage, JS coverage, packaging, release, matrix, WASM size or performance gates. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686. Native performance: all 17 historical native-slower losses remain OPEN; the prescribed isolated Linux hosting measurement comes next. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Native100 coverage increment: +8 paths / +930 gross over 61 / 6432; total 69 paths / 7362 gross, excluding only the two generated Cargo.lock files. Run the actual instrumented production addon in real Node through a test-only required feature and the existing tarpaulin --objects report. Plain Cargo tests need no preparation; the CI 100 percent gate is unchanged. Standard reports remain XML and stdout. Sort namespace barrel exported-name references lexically, preserving first-match short circuit and star source order. Select the lowest object key containing a nested Change. WASM now visits ./left rather than ./right in the regression graph and reports alpha at line 3 instead of beta at line 4. Keep all original 171 raw cases unchanged and append two cross-engine regressions. All 17 native-slower cells remain OPEN and unmeasured. This coverage build is not an optimized performance claim. Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Repair the four declaration-only Linux misses from run40543120018 (20329/20333). Hoist the existing zero-sized IndexVisitor and FileMapVisitor without changing their trait bodies, and expand five import/four export macros into explicit identical thin NAPI functions. Preserve JS names/signatures, original argument reads and diagnostic slots, error identity and byte outputs. No exclusion, product cfg, threshold, report or workflow change. Current Native100 source envelope is69files/7374gross, a separate+8paths/+942gross over61/6432, excluding only the two generated Cargo.lock files. Plain Cargo, root coverage, full lint and173x12real Node/Bun/native/WASM literal parity passed before this normal hook; all original171 and pre-repair173 record bytes remain unchanged. Linux100 remains the acceptance of the new standard CI. The two previously approved lexical-order fixes remain; their WASM callback/diagnostic behavior change is documented in the prior commit. All17native-slower cells remain OPEN and current-unmeasured. Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
Fixed cost 1: dispatch action(None) before allocating the unused failure Rc. W74m-map-proof-02.json and W74m-resolver-asm-01.log.stdout prove the baseline optimized Windows 0x48-byte allocation. Keep the enabled resolver snapshot, lifetime and error replay unchanged. Fixed cost 2: sixteen private numeric operations replace owned operation names and JS UTF-8 control strings. Fixed cost 3: the direct private runner removes the captured thunk. Fixed cost 4: direct callback results and two opaque class-constructor identities remove outer status envelopes. Source and neutrality proofs: W74m-protocol-review-02.md, W74m-rust-fixed-costs-01.md and W74m fixed-cost authority; all metadata packets, original objects/access order, callbacks/receiver/arity, Schema/Access/Host, preflight conversion, queues/reentry/ALS and public Output ownership remain. Parity bug 1: use typed u32 private index/schema-slot keys and static-str declared fields, never replaceable global Number for private controls. Parity bug 2: use primitive BigInt template conversion without global String. Parity bug 3: safely decode the existing copied typed bytes as Uint8Array without Array.from, retaining length/copy/set observations. Parity bug 4: read Symbol.iterator before the caught Reflect.get region so raw fault identity and access order match WASM. Record the approved Number(USERDATA) engine difference independently of parity records: with unmodified globals both engines decode the same values/errors; native retains intrinsic ToNumber, while replaced global Number is observed only by WASM. Keep all other dynamic intrinsic observations. The recording, private-key regressions and public identity scenarios pass on real Node26.12.0/Bun1.4.4 and both engines x3. Local gates: root build and full lint; 9446 Rust tests in25suites/default stack; root6252 and Vite868 Bun tests with both100percent functions/lines; original173x12 complete raw Buffers equal the independent W74l oracle;267validations per host plus73exception and seed-copy equality. Real root LLVM includes the production addon; the nine Windows native zeros are the same exact sites already zero at5aa37ee0 (W74n-windows-zero-audit-01), never exclusions or hidden lines. Standard Linux100 remains mandatory before acceptance. Scope is69paths/8038gross against#794, excluding only the two generated Cargo.lock files. All17historical native-slower comparisons remain OPEN; no native-PC attribution, cost dominance or final optimized hosting acceptance is claimed. No client styling runtime, dependency, source/alias/fixture tuning, newly rejected source or new located source build error. Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Consolidate general pair-map startup through private MapStart16, preserving all previous numeric tags and the existing FnArgs Vec callback transport. Retain exact iterator/entries/length ordering, raw versus wrapped origins, strict tagged metadata Host errors, preflight conversion/reentry, resolver timing, public metadata and owned Output behavior. No empty-input or benchmark-selected fast path. Use a pure change-presence predicate at three boolean consumers rather than computing/retaining the lexical diagnostic origin. Keep origin selection, lexical resolver order and every consuming diagnostic path unchanged. Limit the legacy imported-constants edit to wiring and those three substitutions. Default-stack Rust9449/25suites, full lint/Clippy, rebuilt root and optimized native, genuine70protocol+4raw-resolver checks, Node/Bun267invalid full-buffer parity,25identity scenarios perhost and four seed children pass. Original173-case420555-byte Buffers retain the independent oracle in all12children; six extra queue/ALS cases use a separate post-primary recorder. Both Bun lanes6252+868 pass with functions/lines100. Scope71paths/8364gross, excluding only the two inherited generated Cargo.lock files; at most two new authored paths, explicit narrow legacy exception, all other touched modules<=250pureLOC. No dependency, pin, unsafe/cfg, coverage exclusion, new rejected source or styling runtime. Old B coverage remains retained, not transferred: new-source standard CI and unchanged full corrected timing are required. No performance acceptance is claimed. Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Refs #686 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
owjs3901
marked this pull request as ready for review
November 3, 2026 01:19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
최종 검토 준비 — 2026-11-03
현재 parent head는
51c89930cf1db5a28da0e95bb850b30ff0be61d2, base main은675f7e20bb93928971112525dc8d2df73e42debe입니다. 이 parent 위의 native 기본 플러그인 전환 PR #884는 G 통합 검증을 마쳐 head3b30b7d6에서 Ready for review 상태입니다. #884의 자동 CI41552308801attempt 1은 25 SUCCESS / main 전용 2 조건부 SKIP이며wasm-size와 별도 Codecov patch도 성공했습니다.이 PR #796의 결과는 #884와 구분합니다. 자동 exact-head CI
41532324945, attempt 1은 24 SUCCESS / 2 조건부 SKIP /wasm-size1 FAILURE, workflow 전체 결론은 FAILURE입니다. 8개 native build·pack collector·8개 consumer를 포함한 17개 native job과 모든 기능 job, Linux Rust 100%, root/Vite 100% 및 Codecov patch는 성공했습니다. 실패한 size 지표는 아래에 공개한 기존 승인 예외로 유지하며, 이를 전체 CI 성공으로 바꾸어 표시하지 않습니다. 기능 검증 예외를 추가하거나 source·budget·버전·캐시를 변경하거나 CI를 다시 실행하지 않았습니다.검토 준비는 병합이나 배포를 수행한 상태가 아닙니다. 병합은 사용자가 #796 → #884 순서로 진행합니다. 성능 결론 OPEN, NumberToNumber 및 기존 비교·오류 계약의 한계와 main 후속 항목은 아래 기록대로 유지합니다.
아래는 이번 검토 준비 이전의 원문 이력입니다. 과거의 Draft 유지·이전 head·당시 남은 작업 문구는 해당 시점의 기록으로 보존하며 위 최신 상태를 대신하지 않습니다.
검토 준비 이전의 원문 이력
최신 main 통합 —
51c89930현재 parent head는
51c89930cf1db5a28da0e95bb850b30ff0be61d2, tree는43952cee2a02d27e139eb638984597f777dc3d59입니다. 기존 parent86931b4c에 당시 live main675f7e20를 정상 두 부모 merge로 통합하고 정상 push를 완료했습니다. native 기본 플러그인 전환은 상위 stacked PR #884에서 진행하며 이 PR은 draft로 유지합니다.libs/extractor/src/imported_constants.rs한 곳입니다. 이 파일은 parent의 기존 변경을 모두 유지하면서 main의&builder→(&builder).into()한 줄을 적용한 정확한 결과입니다. 나머지 main 64개와 parent 99개 경로는 각 원본 blob을 유지합니다. 55개 manifest·lockfile의 내용도 그대로이며 dependency pin이나 제품 API·오류 계약 변경을 추가하지 않았습니다..husky/pre-commit의bun lint→bun run test를 그대로 실행한 정상 merge commit hook이 1265.070초에 통과했습니다.cargo fmt --check, 전체 target/feature의clippy -D warnings, ESLint와 아래 로컬 검증을 통과했으며 skip·실패는 없습니다. 종료 시 owned process는 0이고 memory limit·watchdog 실패는 없습니다. hook 후 source·manifest·lockfile과 생성 파일, ordinary native image·WASM, 모든 3031개 index entry가 검토한 tree와 그대로임을 확인했습니다.51c89930, 실제 27 jobs 중 24 SUCCESS, 2 조건부 SKIPPED,wasm-size만 FAILURE; workflow 전체 결론은 FAILURE위 hosted 수치는 해당 run의 실제 완료 job 목록과 publish 원본 log에서 확인했습니다. Vite의 기존 Linux skip 이름은
removes a Windows held-directory fixture only after its owned tree exits이며, 조건부 job skip은deploy-pages와release입니다. 이 parent의 정상 root test script는 native coverage와 root/Vite Bun suite를 실행합니다. 상위 #884의 engine Node suite 결과를 이번 parent의 실행 결과로 옮기지 않았습니다. 재실행·cache 제거·새로운 기능 면제는 추가하지 않았으며 실제 npm 게시나 PR merge·approve·close도 수행하지 않았습니다. 기존 성능 OPEN 항목과 예외 기록은 아래 원문 그대로 남아 있습니다.실제 완료된 일반 CI 7개 job의 원본 log를 모두 보존했습니다. 이 parent에는
build-host.mjshelper가 없고 정상 root build는 WASM·전체 JS build입니다. 해당 7개 log에devup.host-native-buildevent가 없으므로 host native build 소요 시간을 산출하지 않았습니다. 이를 비용 0으로 해석하거나 job 전체 소요 시간을 native build 시간으로 대체하지 않습니다. target별 native delivery 17개 job 및 native coverage용 instrumented build는 별도 범위입니다. 상위 #884 최종 통합은 자체 실행에서 실제 host native build event와 시간을 확인해야 합니다.이번
wasm-size는 source build나 provenance 실패 없이 비교 단계에서 실패했습니다. 실제 비교 source는 base main675f7e20와 PR 합성 mergede9e3200이며, GitHub commit API에서 합성 merge의 tree43952cee가 pushed parent51c89930의 tree와 정확히 같음을 확인했습니다. 네 지표의 원본 결과는 다음과 같습니다.glue의 두 candidate 절대값과 한도는 아래 기존 기록의 크기 초과와 같습니다. 기존 사용자가 승인한 WASM size 전용 예외를 이번 비교 실패에 적용합니다.
wasm-size의 실제 FAIL과 전체 workflow의 FAILURE를 그대로 보존합니다. 그 밖의 모든 기능 job·native 17개·Linux Rust 100%는 이 run에서 별도로 통과했으며 다른 실패에 예외를 적용하지 않았습니다. 크기 budget·workflow·source는 변경하지 않았습니다.이전 설명과 검증 기록 — 원문 보존
아래 본문은 기존 head에서 기록한 당시 결과·제약·성능 수치입니다. 최신 head와 이번 통합의 검증 상태는 위 추가 기록에 표시합니다.
Refs #686 (napi binding). 이 Draft는 main 기반의 네이티브 바인딩과 공개 패키지 PR입니다. #794는 병합되었고 현재 head는
96ede13d3c2b963512b54f59d7750567989b3dc2, tree는a4c198fd40b95192a6e01f01b71c051be9d330df입니다. #883·#891·#810을 포함한 main81d6d924를 두 부모 merge commitbb90ac94로 통합했습니다. 플러그인의 native 기본값 전환은 이 PR 위의 별도 stacked Draft로 진행합니다.요약
libs/binding, thin WASM 위임과 napi-rs 네이티브 백엔드, 공개 CJS/ESM 로더·선언 파일 및 9개 npm 패키지를 전달합니다. 29개 공개 이름의 함수/클래스 identity를 CJS/ESM에서 공유하며 default init은 없습니다. native/WASM 바인딩이 생성한 오류는 runtime 생성 위치 메타데이터를 제외한 동일한 자체 속성(own properties)을 가지며code속성은 없습니다. Bun의 두 선택적 필드는 아래 메타데이터 절에 명시합니다.@devup-ui/binding및@devup-ui/binding-{linux-x64-gnu,linux-arm64-gnu,linux-x64-musl,linux-arm64-musl,darwin-x64,darwin-arm64,win32-x64-msvc,win32-arm64-msvc}입니다. 플랫폼 8개는 루트 binding의 optional dependency이며 raw addon/adapter/positional protocol은 공개 ABI가 아닙니다.engine?: 'wasm' | 'native', 기본 native이며 WASM은 선택 모드로 유지하지만 플러그인 변경은 별도 PR입니다.동작
패키지와 릴리스
bun install --frozen-lockfile을 실행하며 workspace-version-only drift는 bun.lock을 쓰지 않고 허용하고, 별도 lock-consistency gate·bot repair·수동 Update Versions 단계는 두지 않습니다.새로 생기는 오류
setPrefix(false)→setPrefix(): argument prefix must be a string, null or undefined.native coverage preparation is missing; run bun run test from the repository root로 실패하며 일반 Cargo test/제품 API에는 준비 조건을 추가하지 않습니다.검증
최종 41294862352, head
96ede13d: 전체 conclusion은 FAILURE이며 native17개·landing-next-e2e·benchmark·release-compat·react-18·vinext-rsc-css-e2e·webpack-extends-theme는 SUCCESS입니다. publish는 Linux Rust/root/Vite 및 실제 production196/196을 통과한 뒤 dev navigation의 외부 GitHub API403으로 실패했고, wasm-size는 사용자 크기 면제에 해당합니다. 이 외의 실패를 허용하거나 제품 검증을 생략한 결과가 아닙니다. release/deploy-pages는 PR에서 정상적으로 실행하지 않습니다.Linux Rust는 22726/22726(100%)이며, Bun root와 Linux Vite의 두 All files 행은 함수·라인 모두100.00%입니다. 실제 pass/fail 행: 6767 pass, 0 fail, 871 pass, 0 fail. 이전 Node alpha 오류로 도달하지 못했던 Linux Vite coverage lane까지 통과했습니다.
Node 최신 stable 선택과 wasm-pack 최신 stable 검증은 main의 설정을 유지합니다. 통합 직후 Playwright가 Node 전용 native package 테스트를 수집하던 오류를 확인하고 해당 세 모듈만 브라우저 수집에서 제외했습니다. 기존 브라우저 196개/19파일과 main의 20개 spec 원본은 그대로이며, native-packs의 세 Node 테스트 모듈 검증도 그대로 실행합니다. 변경 전 수집은 실제 artifact-preparation 오류로 실패하고 변경 후 수집은196개로 성공했습니다.
두 hosted job은 실제 production196/196을 통과했습니다. landing-next의 한 번의 재실행은 dev13/13 및 singleCss production196/196까지 성공했습니다. publish의 job 재실행 요청도 성공 응답을 받았지만 최종 API 행과 로그는 원래 실행의 복사본이므로 새로운 publish 재실행 성공이라고 주장하지 않습니다. 남은 dev API403은 StarButton과 TeamCard의 인증 없는 요청이며 #893에 있는 fixture·server token 변경을 포함한 main 통합 후 다시 검증합니다.
로컬 최종 hook은1168.198초/exit0/owned survivor0이며 root6767+Vite872/0 fail,89 snapshots 및 두 All files function/line100%였습니다. fresh WASM/root build와 실제 landing dev navigation은 vinext13/13, Next13/13을 통과했습니다. Windows Rust32554/33142(98.23%)는 로컬 mapping이며 위 Linux100%의 대체가 아닙니다. LSP 미설치로 clean LSP라고 주장하지 않습니다.
wasm-size는 glue/raw49816 bytes(한도45056), glue/gzip9049 bytes(한도8192)의 크기 초과이며 budget 수정/shrink는 없습니다. WASM raw6656855/gzip2400709 bytes는 해당 상대 한도 안입니다.
변경 범위는100경로, gross 상계12330/14000, 자체 churn6902/6950입니다. main과 동일한 workflow 통합 줄94개는 별도 한도300개 안이며 제품 구현 변경으로 계산하지 않았습니다.
성능 예외
기존 유효 timing-only 40649575150의 A fe04a70/B ba0ce49 절대값을 변경 없이 아래 보존합니다. native/WASM corpus는0.37–0.44로 큰 순이익이지만 empty-call 고정 비용과 deterministic-order WASM B/A의 일부 cell은 strict gate를 실패했습니다. 2026-10-28 프로젝트 결정으로 이 단위는 명시적 예외와 함께 종료했으며 native transport 재설계·임계값 변경·모든 cell 합격을 주장하지 않습니다.
Empty-source 고정 비용: 알려진 OPEN 항목
12개 전체 비교 중 10개가 NativeB/WASMB<=1을 실패합니다. 아래 값은 microseconds/call이며 delta는 native-WASM 전체 호출 차이입니다. Node 최대 약3.589us, Bun 최대 약0.697us로, request/access/Output 각 연산의 분리 측정은 아닙니다.
Corpus 절대값과 WASM B/A: 알려진 OPEN 항목
Node WASM B/A median=1.0071867478748406은 <=1.01을 통과하지만 replica3=1.035823414772503은 <=1.03을 실패합니다. Bun의 각 replica는 <=1.03을 통과하지만 median=1.0124463420458083은 <=1.01을 실패합니다. 프로젝트에서는 필수 결정론적 순서 수정과 이 replica 분포를 감안해 이 PR의 순성능 이익을 수용했습니다. 이것은 strict rule 합격 또는 미확인 원인의 해결 주장이 아니라 명시적 예외입니다.
남는 한계
Bun 생성 위치 메타데이터
Bun에서는 내부 call-site bookkeeping에 따라
originalLine과originalColumn이 한 engine 오류에는 있고 다른 쪽에는 없을 수 있습니다. 이 두 필드의 존재만 Bun의 runtime 생성 메타데이터로 취급하고 원래 값/descriptor는 증거에 그대로 보관합니다. 존재하는 필드의 숫자 형식과 descriptor, 그 밖의 own key와 남은 순서, 비생성 위치 값, 메시지/located text/constructor/prototype/cause는 정확히 검증합니다. stack frame과 runtime이 캡처한 생성 위치 값은 각 backend의 호출 경로를 원문으로 보관하며 동일한 frame/값을 요구하지 않습니다.확인한 문법 오류 경로는 native와 WASM 모두 동기로 오류를 전달하며, engine에서 받은 객체가 Webpack loader callback까지 같은 identity로 유지됩니다. 이 차이를 위해 binding 오류를 복제하거나 비동기화한 변경은 없으며, 다른 사용자 속성의 parity 면제도 아닙니다.